home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-04-09 | 9.3 KB | 327 lines | [TEXT/MPS ] |
- ;
- ; File: QD3DStorage.a
- ;
- ; Contains: Abstraction to deal with various types of stream-based storage devices
- ;
- ; Version: Technology: Quickdraw 3D 1.5.4
- ; Release: QuickTime 3.0
- ;
- ; Copyright: © 1995-1998 by Apple Computer, Inc., all rights reserved.
- ;
- ; Bugs?: Please include the the file and version information (from above) with
- ; the problem description. Developers belonging to one of the Apple
- ; developer programs can submit bug reports to:
- ;
- ; devsupport@apple.com
- ;
- ;
- IF &TYPE('__QD3DSTORAGE__') = 'UNDEFINED' THEN
- __QD3DSTORAGE__ SET 1
-
- IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
- include 'QD3D.a'
- ENDIF
-
- IF TARGET_OS_MAC THEN
- IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
- include 'MacTypes.a'
- ENDIF
- IF &TYPE('__FILES__') = 'UNDEFINED' THEN
- include 'Files.a'
- ENDIF
- ENDIF ; TARGET_OS_MAC
- ; ******************************************************************************
- ; ** **
- ; ** Storage Routines **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3ObjectType Q3Storage_GetType(TQ3StorageObject storage)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Storage_GetType
- ENDIF
-
- ;
- ; extern TQ3Status Q3Storage_GetSize(TQ3StorageObject storage, unsigned long *size)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Storage_GetSize
- ENDIF
-
- ;
- ; * Reads "dataSize" bytes starting at offset in storage, copying into data.
- ; * sizeRead returns the number of bytes filled in.
- ; *
- ; * You may assume if *sizeRead < dataSize, then EOF is at offset + *sizeRead
- ;
-
- ;
- ; extern TQ3Status Q3Storage_GetData(TQ3StorageObject storage, unsigned long offset, unsigned long dataSize, unsigned char *data, unsigned long *sizeRead)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Storage_GetData
- ENDIF
-
- ;
- ; * Write "dataSize" bytes starting at offset in storage, copying from data.
- ; * sizeWritten returns the number of bytes filled in.
- ; *
- ; * You may assume if *sizeRead < dataSize, then EOF is at offset + *sizeWritten
- ;
-
- ;
- ; extern TQ3Status Q3Storage_SetData(TQ3StorageObject storage, unsigned long offset, unsigned long dataSize, const unsigned char *data, unsigned long *sizeWritten)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Storage_SetData
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Memory Storage Prototypes **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3ObjectType Q3MemoryStorage_GetType(TQ3StorageObject storage)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MemoryStorage_GetType
- ENDIF
-
- ;
- ; * These calls COPY the buffer into QD3D space
- ;
-
- ;
- ; extern TQ3StorageObject Q3MemoryStorage_New(const unsigned char *buffer, unsigned long validSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MemoryStorage_New
- ENDIF
-
- ;
- ; extern TQ3Status Q3MemoryStorage_Set(TQ3StorageObject storage, const unsigned char *buffer, unsigned long validSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MemoryStorage_Set
- ENDIF
-
- ;
- ; * These calls use the pointer given - you must dispose it when you're through
- ;
-
- ;
- ; extern TQ3StorageObject Q3MemoryStorage_NewBuffer(unsigned char *buffer, unsigned long validSize, unsigned long bufferSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MemoryStorage_NewBuffer
- ENDIF
-
- ;
- ; extern TQ3Status Q3MemoryStorage_SetBuffer(TQ3StorageObject storage, unsigned char *buffer, unsigned long validSize, unsigned long bufferSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MemoryStorage_SetBuffer
- ENDIF
-
- ;
- ; extern TQ3Status Q3MemoryStorage_GetBuffer(TQ3StorageObject storage, unsigned char **buffer, unsigned long *validSize, unsigned long *bufferSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MemoryStorage_GetBuffer
- ENDIF
-
- IF TARGET_OS_MAC THEN
- ; ******************************************************************************
- ; ** **
- ; ** Macintosh Handles Prototypes **
- ; ** **
- ; ****************************************************************************
-
- ; Handle Storage is a subclass of Memory Storage
- ;
- ; extern TQ3StorageObject Q3HandleStorage_New(Handle handle, unsigned long validSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3HandleStorage_New
- ENDIF
-
- ;
- ; extern TQ3Status Q3HandleStorage_Set(TQ3StorageObject storage, Handle handle, unsigned long validSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3HandleStorage_Set
- ENDIF
-
- ;
- ; extern TQ3Status Q3HandleStorage_Get(TQ3StorageObject storage, Handle *handle, unsigned long *validSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3HandleStorage_Get
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Macintosh Storage Prototypes **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3StorageObject Q3MacintoshStorage_New(short fsRefNum)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MacintoshStorage_New
- ENDIF
-
- ; Note: This storage is assumed open
- ;
- ; extern TQ3Status Q3MacintoshStorage_Set(TQ3StorageObject storage, short fsRefNum)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MacintoshStorage_Set
- ENDIF
-
- ;
- ; extern TQ3Status Q3MacintoshStorage_Get(TQ3StorageObject storage, short *fsRefNum)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MacintoshStorage_Get
- ENDIF
-
- ;
- ; extern TQ3ObjectType Q3MacintoshStorage_GetType(TQ3StorageObject storage)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3MacintoshStorage_GetType
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Macintosh FSSpec Storage Prototypes **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3StorageObject Q3FSSpecStorage_New(const FSSpec *fs)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3FSSpecStorage_New
- ENDIF
-
- ;
- ; extern TQ3Status Q3FSSpecStorage_Set(TQ3StorageObject storage, const FSSpec *fs)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3FSSpecStorage_Set
- ENDIF
-
- ;
- ; extern TQ3Status Q3FSSpecStorage_Get(TQ3StorageObject storage, FSSpec *fs)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3FSSpecStorage_Get
- ENDIF
-
- ENDIF ; TARGET_OS_MAC
- IF TARGET_OS_WIN32 THEN
- ; ******************************************************************************
- ; ** **
- ; ** Win32 HANDLE Storage Prototypes **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3StorageObject Q3Win32Storage_New(HANDLE hFile)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Win32Storage_New
- ENDIF
-
- ;
- ; extern TQ3Status Q3Win32Storage_Set(TQ3StorageObject storage, HANDLE hFile)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Win32Storage_Set
- ENDIF
-
- ;
- ; extern TQ3Status Q3Win32Storage_Get(TQ3StorageObject storage, HANDLE *hFile)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Win32Storage_Get
- ENDIF
-
- ENDIF ; TARGET_OS_WIN32
-
- ; ******************************************************************************
- ; ** **
- ; ** Unix Prototypes **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3StorageObject Q3UnixStorage_New(FILE *storage)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3UnixStorage_New
- ENDIF
-
- ;
- ; extern TQ3Status Q3UnixStorage_Set(TQ3StorageObject storage, FILE *stdFile)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3UnixStorage_Set
- ENDIF
-
- ;
- ; extern TQ3Status Q3UnixStorage_Get(TQ3StorageObject storage, FILE **stdFile)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3UnixStorage_Get
- ENDIF
-
- ;
- ; extern TQ3ObjectType Q3UnixStorage_GetType(TQ3StorageObject storage)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3UnixStorage_GetType
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Unix Path Prototypes **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3StorageObject Q3UnixPathStorage_New(const char *pathName)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3UnixPathStorage_New
- ENDIF
-
- ; C string
- ;
- ; extern TQ3Status Q3UnixPathStorage_Set(TQ3StorageObject storage, const char *pathName)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3UnixPathStorage_Set
- ENDIF
-
- ; C string
- ;
- ; extern TQ3Status Q3UnixPathStorage_Get(TQ3StorageObject storage, char *pathName)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3UnixPathStorage_Get
- ENDIF
-
- ; pathName is a buffer
-
- ENDIF ; __QD3DSTORAGE__
-
-